: empty-queue ( addr -- )  0 over !  dup cell+ ! ;
: queue ( "name" -- )  create here 2 cells allot empty-queue ;
: enqueue ( addr addr.queue -- )  cell+ 2dup @ link-after ! ;
: dequeue ( addr.queue -- addr )
	dup @ swap  dup unlink-next
	2dup cell+ @ = if dup cell+ ! else drop then ;
